home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 3 / ACE CD 3.iso / files / utils / hyperbo2.dms / in.adf / Applications / Calendar.hb (.txt) < prev    next >
Encoding:
HyperBook  |  1990-10-07  |  85.7 KB  |  798 lines

  1. call interactive(0)
  2. indic = searchname('1:','Today Box')
  3. if indic = '' then do
  4.    indic = searchname('0:','Today Box')
  5.    if indic = '' then exit
  6.    end
  7. parse value date() with day month year .
  8. day = strip(day,'l','0')
  9. if year = 1991 & abbrev(getname(':'),month) then do
  10.    ob = searchname(':','Date_' || day || '_')
  11.    if ob ~= '' then do
  12.       call setposition(indic, getleft(ob)+5, gettop(ob)+2)
  13.       call setactionrexx(indic, 'call _daymacro(''' || getname(ob) || '''())')
  14.       if getpage(indic) ~= currentpage() then call relocate(indic, ':')
  15.       end
  16.    end
  17. else if getpage(indic) = currentpage() then
  18.    call relocate(indic,'0:')
  19. PageEntryMacro
  20. call _daymacro(initiator())
  21. DayMacro
  22. {/* DeleteEntry
  23.    Delete the entry for one of the days in the calendar.
  24. row = getclickrow('Click on the day whose entry you want to clear')
  25. col = getcolumn()
  26. obj = getobjectat(col,row)
  27. if obj='' then exit
  28. if getname(obj)='Today Box' then
  29.    obj=getobjectat(getleft(obj)-1,row)
  30. if left(getname(obj),5) = 'Date_' then do
  31.    n = strip(substr(getname(obj),6),'t','_') + 0
  32.    if getresponse(' Really clear entry for' getname(':') n || '? ') then do
  33.       do until item=''
  34.          item = searchitems('Entries'(), n || '__')
  35.          if item ~= '' then call delete(item)
  36.          end
  37.       call setbackground(obj,3)
  38.       end
  39.    end
  40. DeleteEntry
  41. w/* Summarize - Display summary of month's events. */
  42. call beginprompt('Working...')
  43. say PrepareSummary(currentpage())
  44.     Summarize
  45. /* UseIndex - Called by Index button on every calendar page */
  46. pg = inputpage('Select month')
  47. if pg ~= '' & pg ~= currentpage() then do
  48.    call gotopage(pg)
  49.    call pageentrymacro()
  50.    end
  51. UseIndex
  52. /* ClearMonth - Clear all entries in current month */
  53. if getresponse(' Really clear all entries for this month? ') then
  54.    call _clearmonth(currentpage())
  55. ClearMonth
  56. /* ClearCalendar - Clear all entries for whole year */
  57. if getresponse(' Really clear all entries in the calendar? ') then do
  58.    call beginprompt('Working...')
  59.    do i = 1 to numpages()
  60.       call _clearmonth(objectnumber('',i))
  61.       end
  62.    end
  63. ClearCalendar
  64. U/* PrepareSummary (pg) */
  65. pg = arg(1)
  66. en = searchname(pg, 'Entries')
  67. d1 = searchname(pg, 'Date_1_')
  68. wdays = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday'
  69. if en = '' then return ''
  70. if d1 = '' then return ''
  71. if getpage(en) ~= pg then return ''
  72. if getpage(d1) ~= pg then return ''
  73. day = (getleft(d1) - 38) % 86 - 1
  74. month = getname(pg)
  75. tx    = ''
  76. do i=1 to 31
  77.    ob = searchname(pg,'Date_' || i)
  78.    if ob = '' then iterate
  79.    if getbackground(ob) ~= 4 then iterate
  80.    it = objectnumber('Entries'(),1)
  81.    t  = ''
  82.    do while it ~= ''
  83.       it = searchitems(it, right(i,2,'0') || '__')
  84.       if it ~= '' then do
  85.          t = t ' ' substr(getitemtext(it),5) || '0a'x
  86.          it = getnext(it)
  87.          end
  88.       end
  89.    if t ~= '' then tx = tx || word(wdays,(day + i) // 7 + 1) || ',' month i || '0a'x || t
  90.    end
  91. return strip(tx,'t','0a'x)
  92. PrepareSummary(page)
  93. f/* _daymacro(ob) - What happens when you click on a day in the calendar.
  94.    The MX variable in the first line determines the number of lines
  95.    available to be typed in for each day. It may changed if desired.
  96. MX = 5
  97. ob = arg(1)
  98. CR = '0a'x
  99. /* Weekday is determined by the object's leftedge. We get the month from the
  100.    page name, and the date from the first 3 characters of the object's
  101.    text. Add '1991', and we've got the full date for use as prompt.
  102. n     = (getleft(ob) - 38) % 86 + 1
  103. date  = word('Sunday Monday Tuesday Wednesday Thursday Friday Saturday',n)
  104. day   = compress(readnotetext(ob,0,3),'0a'x)
  105. date  = date || ',' getname(':') day || ', 1991'
  106. /* The text is stored in up to MX items on the hidden list 'Entries'. Each
  107.    item begins with the day number plus a double underscore. The text is
  108.    gathered into the compound variable `text'. The old entries are not
  109.    deleted yet in case the user cancels the inputform requester.
  110. day   = right(day, 2, '0') || '__'
  111. list  = 'Entries'()
  112. citm  = 1
  113. item.citm = searchitems(list, day)
  114. do while item.citm ~= ''
  115.    nitm = citm + 1
  116.    text.citm = substr(getitemtext(item.citm),5)
  117.    item.nitm = getnext(item.citm)
  118.    if item.nitm ~= '' then
  119.       item.nitm = searchitems(item.nitm,day)
  120.    citm = nitm
  121.    end
  122. citm = citm - 1
  123. /* The text is concatenated into the format required by inputform(), whose
  124.    output, stripped of linefeeds at both ends, is returned, then parsed
  125.    back into the `text' compound variable.
  126. txt  = ''
  127. do i = citm + 1 to MX
  128.    text.i = ''
  129.    end
  130. do i = 1 to MX
  131.    txt = txt || '3a'x || text.i || CR
  132.    end
  133. txt = strip(inputform(date, strip(txt,'t',CR)), 'b', CR)
  134. do i = 1 to MX
  135.    n = index(txt,CR)
  136.    if n > 0 then do
  137.       text.i = left(txt, n - 1)
  138.       txt    = substr(txt, n + 1)
  139.       end
  140.    else do
  141.       text.i = txt
  142.       txt    = ''
  143.       end
  144.    end
  145. /* If all the input lines are empty (total length = 0), assume that the
  146.    user cancelled the inputform requester (the DELETE button is available
  147.    if it is desired to remove the entry), so exit.
  148. len = 0
  149. do i = 1 to MX
  150.    len = len + length(text.i)
  151.    end
  152. if len = 0 then exit
  153. /* Delete any previously-existing items for this day, then append any
  154.    new non-empty lines back onto the Entries list. Set the background
  155.    color of the day to yellow to show the presence of an entry. We have
  156.    to delete the items in reverse order to avoid modifying the objnums
  157.    of the items as yet undeleted.
  158. do i = citm to 1 by -1
  159.    if item.i ~= '' then call delete(item.i)
  160.    end
  161. do i = 1 to MX
  162.    if text.i ~= '' then call appenditem(list, day || text.i, 1)
  163.    end
  164. call setbackground(ob,4)
  165. _daymacro(obj)
  166. /* _clearmonth
  167.    Clear all entries on the given page... This is called by ClearMonth
  168.    and ClearCalendar.
  169. pg = arg(1)
  170. en = searchname(pg, 'Entries')
  171. call interactive(0)
  172. if en = '' then exit
  173. if getpage(en) ~= getpage(pg) then exit
  174. call clearlist(en)
  175. do i = 1 to numelements(pg)
  176.    ob = objectnumber(pg,i)
  177.    if left(getname(ob),5) = 'Date_' then
  178.       if getbackground(ob) ~= 3 then
  179.          call setbackground(ob,3)
  180.    end
  181. _clearmonth(pg)
  182. "FKeyHelp"
  183. 1991 HyperBook Calendar
  184. "month"
  185. "SUN"
  186. "MON"
  187. "TUES"
  188. "WED"
  189. "THURS"
  190. THURS
  191. "FRI"
  192. "SAT"
  193.     "Date_1_"
  194.     "Date_2_"
  195.     "Date_3_"
  196.     "Date_4_"
  197.     "Date_5_"
  198.     "Date_6_"
  199.     "Date_7_"
  200.     "Date_8_"
  201.     "Date_9_"
  202. "Date_10_"
  203. "Date_11_"
  204. "Date_12_"
  205. "Date_13_"
  206. "Date_14_"
  207. "Date_15_"
  208. "Date_16_"
  209. "Date_17_"
  210. "Date_18_"
  211. "Date_19_"
  212. "Date_20_"
  213. "Date_21_"
  214. "Date_22_"
  215. "Date_23_"
  216. "Date_24_"
  217. "Date_25_"
  218. "Date_26_"
  219. "Date_27_"
  220. "Date_28_"
  221. "Date_29_"
  222. "Date_30_"
  223. "Date_31_"
  224. "DeleteEntry"
  225. Delete
  226. "Summarize"
  227. Summa
  228. "UseIndex"
  229. Index
  230. "NoDate"
  231.     "Entries"
  232.     "January"
  233. "FKeyHelp"
  234. 1991 HyperBook Calendar
  235. "month"
  236. "SUN"
  237. "MON"
  238. "TUES"
  239. "WED"
  240. "THURS"
  241. THURS
  242. "FRI"
  243. "SAT"
  244.     "Date_1_"
  245.     "Date_2_"
  246.     "Date_3_"
  247.     "Date_4_"
  248.     "Date_5_"
  249.     "Date_6_"
  250.     "Date_7_"
  251.     "Date_8_"
  252.     "Date_9_"
  253. "Date_10_"
  254. "Date_11_"
  255. "Date_12_"
  256. "Date_13_"
  257. "Date_14_"
  258. "Date_15_"
  259. "Date_16_"
  260. "Date_17_"
  261. "Date_18_"
  262. "Date_19_"
  263. "Date_20_"
  264. "Date_21_"
  265. "Date_22_"
  266. "Date_23_"
  267. "Date_24_"
  268. "Date_25_"
  269. "Date_26_"
  270. "Date_27_"
  271. "Date_28_"
  272. "NoDate"
  273. "NoDate"
  274. "NoDate"
  275. "DeleteEntry"
  276. Delete
  277. "Summarize"
  278. Summa
  279. "UseIndex"
  280. Index
  281. "NoDate"
  282.     "Entries"
  283. "February"
  284. "FKeyHelp"
  285. 1991 HyperBook Calendar
  286. "month"
  287. "SUN"
  288. "MON"
  289. "TUES"
  290. "WED"
  291. "THURS"
  292. THURS
  293. "FRI"
  294. "SAT"
  295.     "Date_1_"
  296.     "Date_2_"
  297.     "Date_3_"
  298.     "Date_4_"
  299.     "Date_5_"
  300.     "Date_6_"
  301.     "Date_7_"
  302.     "Date_8_"
  303.     "Date_9_"
  304. "Date_10_"
  305. "Date_11_"
  306. "Date_12_"
  307. "Date_13_"
  308. "Date_14_"
  309. "Date_15_"
  310. "Date_16_"
  311. "Date_17_"
  312. "Date_18_"
  313. "Date_19_"
  314. "Date_20_"
  315. "Date_21_"
  316. "Date_22_"
  317. "Date_23_"
  318. "Date_24_"
  319. "Date_25_"
  320. "Date_26_"
  321. "Date_27_"
  322. "Date_28_"
  323. "Date_29_"
  324. "Date_30_"
  325. "Date_31_"
  326. "DeleteEntry"
  327. Delete
  328. "Summarize"
  329. Summa
  330. "UseIndex"
  331. Index
  332. "NoDate"
  333.     "Entries"
  334. "March"
  335. "FKeyHelp"
  336. 1991 HyperBook Calendar
  337. "month"
  338. "SUN"
  339. "MON"
  340. "TUES"
  341. "WED"
  342. "THURS"
  343. THURS
  344. "FRI"
  345. "SAT"
  346.     "Date_1_"
  347.     "Date_2_"
  348.     "Date_3_"
  349.     "Date_4_"
  350.     "Date_5_"
  351.     "Date_6_"
  352.     "Date_7_"
  353.     "Date_8_"
  354.     "Date_9_"
  355. "Date_10_"
  356. "Date_11_"
  357. "Date_12_"
  358. "Date_13_"
  359. "Date_14_"
  360. "Date_15_"
  361. "Date_16_"
  362. "Date_17_"
  363. "Date_18_"
  364. "Date_19_"
  365. "Date_20_"
  366. "Date_21_"
  367. "Date_22_"
  368. "Date_23_"
  369. "Date_24_"
  370. "Date_25_"
  371. "Date_26_"
  372. "Date_27_"
  373. "Date_28_"
  374. "Date_29_"
  375. "Date_30_"
  376. "NoDate"
  377. "DeleteEntry"
  378. Delete
  379. "Summarize"
  380. Summa
  381. "UseIndex"
  382. Index
  383. "NoDate"
  384.     "Entries"
  385. "April"
  386. "FKeyHelp"
  387. 1991 HyperBook Calendar
  388. "month"
  389. "SUN"
  390. "MON"
  391. "TUES"
  392. "WED"
  393. "THURS"
  394. THURS
  395. "FRI"
  396. "SAT"
  397.     "Date_1_"
  398.     "Date_2_"
  399.     "Date_3_"
  400.     "Date_4_"
  401.     "Date_5_"
  402.     "Date_6_"
  403.     "Date_7_"
  404.     "Date_8_"
  405.     "Date_9_"
  406. "Date_10_"
  407. "Date_11_"
  408. "Date_12_"
  409. "Date_13_"
  410. "Date_14_"
  411. "Date_15_"
  412. "Date_16_"
  413. "Date_17_"
  414. "Date_18_"
  415. "Date_19_"
  416. "Date_20_"
  417. "Date_21_"
  418. "Date_22_"
  419. "Date_23_"
  420. "Date_24_"
  421. "Date_25_"
  422. "Date_26_"
  423. "Date_27_"
  424. "Date_28_"
  425. "Date_29_"
  426. "Date_30_"
  427. "Date_31_"
  428. "DeleteEntry"
  429. Delete
  430. "Summarize"
  431. Summa
  432. "UseIndex"
  433. Index
  434. "NoDate"
  435.     "Entries"
  436. "May"
  437. "FKeyHelp"
  438. 1991 HyperBook Calendar
  439. "Month"
  440. "SUN"
  441. "MON"
  442. "TUES"
  443. "WED"
  444. "THURS"
  445. THURS
  446. "FRI"
  447. "SAT"
  448.     "Date_1_"
  449.     "Date_2_"
  450.     "Date_3_"
  451.     "Date_4_"
  452.     "Date_5_"
  453.     "Date_6_"
  454.     "Date_7_"
  455.     "Date_8_"
  456.     "Date_9_"
  457. "Date_10_"
  458. "Date_11_"
  459. "Date_12_"
  460. "Date_13_"
  461. "Date_14_"
  462. "Date_15_"
  463. "Date_16_"
  464. "Date_17_"
  465. "Date_18_"
  466. "Date_19_"
  467. "Date_20_"
  468. "Date_21_"
  469. "Date_22_"
  470. "Date_23_"
  471. "Date_24_"
  472. "Date_25_"
  473. "Date_26_"
  474. "Date_27_"
  475. "Date_28_"
  476. "Date_29_"
  477. "Date_30_"
  478. "NoDate"
  479. "DeleteEntry"
  480. Delete
  481. "Summarize"
  482. Summa
  483. "UseIndex"
  484. Index
  485. "NoDate"
  486.     "Entries"
  487. "June"
  488. "FKeyHelp"
  489. 1991 HyperBook Calendar
  490. "month"
  491. "SUN"
  492. "MON"
  493. "TUES"
  494. "WED"
  495. "THURS"
  496. THURS
  497. "FRI"
  498. "SAT"
  499.     "Date_1_"
  500.     "Date_2_"
  501.     "Date_3_"
  502.     "Date_4_"
  503.     "Date_5_"
  504.     "Date_6_"
  505.     "Date_7_"
  506.     "Date_8_"
  507.     "Date_9_"
  508. "Date_10_"
  509. "Date_11_"
  510. "Date_12_"
  511. "Date_13_"
  512. "Date_14_"
  513. "Date_15_"
  514. "Date_16_"
  515. "Date_17_"
  516. "Date_18_"
  517. "Date_19_"
  518. "Date_20_"
  519. "Date_21_"
  520. "Date_22_"
  521. "Date_23_"
  522. "Date_24_"
  523. "Date_25_"
  524. "Date_26_"
  525. "Date_27_"
  526. "Date_28_"
  527. "Date_29_"
  528. "Date_30_"
  529. "Date_31_"
  530. "DeleteEntry"
  531. Delete
  532. "Summarize"
  533. Summa
  534. "UseIndex"
  535. Index
  536. "NoDate"
  537.     "Entries"
  538. "July"
  539. "FKeyHelp"
  540. 1991 HyperBook Calendar
  541. "month"
  542. "SUN"
  543. "MON"
  544. "TUES"
  545. "WED"
  546. "THURS"
  547. THURS
  548. "FRI"
  549. "SAT"
  550.     "Date_1_"
  551.     "Date_2_"
  552.     "Date_3_"
  553.     "Date_4_"
  554.     "Date_5_"
  555.     "Date_6_"
  556.     "Date_7_"
  557.     "Date_8_"
  558.     "Date_9_"
  559. "Date_10_"
  560. "Date_11_"
  561. "Date_12_"
  562. "Date_13_"
  563. "Date_14_"
  564. "Date_15_"
  565. "Date_16_"
  566. "Date_17_"
  567. "Date_18_"
  568. "Date_19_"
  569. "Date_20_"
  570. "Date_21_"
  571. "Date_22_"
  572. "Date_23_"
  573. "Date_24_"
  574. "Date_25_"
  575. "Date_26_"
  576. "Date_27_"
  577. "Date_28_"
  578. "Date_29_"
  579. "Date_30_"
  580. "Date_31_"
  581. "DeleteEntry"
  582. Delete
  583. "Summarize"
  584. Summa
  585. "UseIndex"
  586. Index
  587. "NoDate"
  588.     "Entries"
  589. "August"
  590. "FKeyHelp"
  591. 1991 HyperBook Calendar
  592. "month"
  593. "SUN"
  594. "MON"
  595. "TUES"
  596. "WED"
  597. "THURS"
  598. THURS
  599. "FRI"
  600. "SAT"
  601.     "Date_1_"
  602.     "Date_2_"
  603.     "Date_3_"
  604.     "Date_4_"
  605.     "Date_5_"
  606.     "Date_6_"
  607.     "Date_7_"
  608.     "Date_8_"
  609.     "Date_9_"
  610. "Date_10_"
  611. "Date_11_"
  612. "Date_12_"
  613. "Date_13_"
  614. "Date_14_"
  615. "Date_15_"
  616. "Date_16_"
  617. "Date_17_"
  618. "Date_18_"
  619. "Date_19_"
  620. "Date_20_"
  621. "Date_21_"
  622. "Date_22_"
  623. "Date_23_"
  624. "Date_24_"
  625. "Date_25_"
  626. "Date_26_"
  627. "Date_27_"
  628. "Date_28_"
  629. "Date_29_"
  630. "Date_30_"
  631. "NoDate"
  632. "DeleteEntry"
  633. Delete
  634. "Summarize"
  635. Summa
  636. "UseIndex"
  637. Index
  638. "NoDate"
  639.     "Entries"
  640. "September"
  641. "FKeyHelp"
  642. 1991 HyperBook Calendar
  643. "month"
  644. "SUN"
  645. "MON"
  646. "TUES"
  647. "WED"
  648. "THURS"
  649. THURS
  650. "FRI"
  651. "SAT"
  652. "UseIndex"
  653. Index
  654. "NoDate"
  655.     "Entries"
  656.     "Date_1_"
  657.     "Date_2_"
  658.     "Date_3_"
  659.     "Date_4_"
  660.     "Date_5_"
  661.     "Date_7_"
  662.     "Date_8_"
  663.     "Date_9_"
  664. "Date_10_"
  665. "Date_11_"
  666. "Date_12_"
  667. "Date_14_"
  668. "Date_15_"
  669. "Date_16_"
  670. "Date_17_"
  671. "Date_18_"
  672. "Date_19_"
  673. "Date_21_"
  674. "Date_22_"
  675. "Date_23_"
  676. "Date_24_"
  677. "Date_25_"
  678. "Date_26_"
  679. "Date_28_"
  680. "Date_29_"
  681. "Date_30_"
  682. "Date_31_"
  683.     "Date_6_"
  684. "Date_13_"
  685. "Date_20_"
  686. "Date_27_"
  687. "DeleteEntry"
  688. Delete
  689. "Summarize"
  690. Summa
  691.     "October"
  692. "FKeyHelp"
  693. 1991 HyperBook Calendar
  694. "month"
  695. "SUN"
  696. "MON"
  697. "TUES"
  698. "WED"
  699. "THURS"
  700. THURS
  701. "FRI"
  702. "SAT"
  703.     "Entries"
  704.     "Date_1_"
  705.     "Date_2_"
  706.     "Date_4_"
  707.     "Date_5_"
  708.     "Date_6_"
  709.     "Date_7_"
  710.     "Date_8_"
  711.     "Date_9_"
  712. "Date_11_"
  713. "Date_12_"
  714. "Date_13_"
  715. "Date_14_"
  716. "Date_15_"
  717. "Date_16_"
  718. "Date_18_"
  719. "Date_19_"
  720. "Date_20_"
  721. "Date_21_"
  722. "Date_22_"
  723. "Date_23_"
  724. "Date_25_"
  725. "Date_26_"
  726. "Date_27_"
  727. "Date_28_"
  728. "Date_29_"
  729. "Date_30_"
  730. "DeleteEntry"
  731. Delete
  732. "Summarize"
  733. Summa
  734. "UseIndex"
  735. Index
  736. "NoDate"
  737. "NoDate"
  738.     "Date_3_"
  739. "Date_10_"
  740. "Date_17_"
  741. "Date_24_"
  742. "November"
  743. "FKeyHelp"
  744. 1991 HyperBook Calendar
  745. "Month"
  746. "SUN"
  747. "MON"
  748. "TUES"
  749. "WED"
  750. "THURS"
  751. THURS
  752. "FRI"
  753. "SAT"
  754.     "Entries"
  755.     "Date_2_"
  756.     "Date_3_"
  757.     "Date_4_"
  758.     "Date_5_"
  759.     "Date_6_"
  760.     "Date_7_"
  761.     "Date_9_"
  762. "Date_10_"
  763. "Date_11_"
  764. "Date_12_"
  765. "Date_13_"
  766. "Date_14_"
  767. "Date_16_"
  768. "Date_17_"
  769. "Date_18_"
  770. "Date_19_"
  771. "Date_20_"
  772. "Date_21_"
  773. "Date_23_"
  774. "Date_24_"
  775. "Date_25_"
  776. "Date_26_"
  777. "Date_27_"
  778. "Date_28_"
  779. "Date_30_"
  780. "Date_31_"
  781. "DeleteEntry"
  782. Delete
  783. "Summarize"
  784. Summa
  785. "UseIndex"
  786. Index
  787. "NoDate"
  788.     "Date_1_"
  789.     "Date_8_"
  790. "Date_15_"
  791. "Date_22_"
  792. "Date_29_"
  793. "December"
  794. "Today Box"
  795. call _daymacro('Date_3_'())
  796. diamond.font
  797. diamond.font
  798.